﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace nr.InteractiveQuery
{
    public abstract class SimpleFilter : IFilter
    {
        /// <summary>
        /// Memorizza il campo soggetto a filtro.
        /// </summary>
        private string filterField;
        private IComparable value;
        /// <summary>
        /// Imposta/Restituisce il nome del campo soggetto a filtro.
        /// </summary>
        public string FilterField { get { return filterField; } set { filterField = value; } }
        public IComparable Value
        {
            get { return value; }
            set { this.value = value; }
        }
        /// <summary>
        /// Costruttore.
        /// </summary>
        /// <param name="filterField">Campo soggetto a filtro.</param>
        public SimpleFilter(string filterField, IComparable value)
        {
            FilterField = filterField;
            Value = value;
        }
        /// <summary>
        /// Applica il filtro ad un record.
        /// </summary>
        /// <param name="row">Record sul quale applicare il filtro.</param>
        /// <returns>Risultato dell'applicazione del filtro.</returns>
        public abstract bool Apply(DataRow row);
    }
}
